통계 - 단일표본 T 검정(One Sample t-Test)
목차
본 글은 통계학에서 사용되는 단일표본 T 검정을 설명하기 위해 작성되었습니다.
또한, 파이썬 Scipy 라이브러리를 활용하여 단일표본 T 검정을 진행하도록 하겠습니다.
단일표본 T 검정 #
단일표본 T 검정이란 통계 분석에서 사용되는 가설 검정 방법 중 하나로, 하나의 표본에 대한 평균을 검정하는데 사용됩니다. 주로 모집단의 평균이 어떤 특정 값과 같은지를 확인하고자 할 때 적용됩니다.
단일표본 T 검정은 다음과 같은 단계로 이루어집니다.
1. 가설 설정 #
H₀ : 𝜇 = 𝜇₀ → 귀무가설 | 모평균과 표본평균은 같다. |
---|---|
H₁ : 𝜇 ≠ 𝜇₀ → 대립가설 | 모평균과 표본평균은 같지 않다. |
2. 표본 추출 #
모집단에서 표본을 추출하여 해당 표본의 평균을 계산합니다.
3. 가설 검정 통계량 계산 #
t-통계량을 계산합니다. 이는 표본 평균과 가설에 기반한 예상 평균 간의 차이를 나타냅니다.
4. 결정 / 결론 #
계산된 t-통계량이 기각역 안에 들어가면 귀무가설을 기각하고 대립가설을 채택합니다.
그렇지 않으면 귀무가설을 기각하지 않습니다.
- 양측검정일 경우, 기각역은 양측에 대칭되는 t-분포의 양 끝 부분입니다.
귀무가설을 기각했을 경우, 표본이 모집단과 다르다고 결론내립니다.
반대로 기각하지 못했을 경우, 통계적으로 유의하지 않다고 결론내립니다.
파이썬 라이브러리 Scipy 활용 방법 #
다음은 파이썬 Scipy 라이브러리를 활용하여 단일표본 T 검정을 진행하도록 하겠습니다.
이번에 다루는 데이터에는 나무 31그루의 둘레와 높이, 부피가 저장되어 있습니다.
이 표본의 평균이 모평균과 일치하는지 단일표본 T 검정을 통해 알아보고자 합니다. 가설은 아래와 같습니다.
유의수준은 0.05로 설정하도록 하겠습니다.
가설검정
귀무가설 : 평균은 75이다.
대립가설 : 평균은 75가 아니다.
우선 데이터를 불러오도록 하겠습니다.
>>> import pandas as pd
>>> df = pd.read_csv("./data/trees.csv")
>>> df.head()
Girth | Height | Volume | |
---|---|---|---|
0 | 8.3 | 70 | 10.3 |
1 | 8.6 | 65 | 10.3 |
2 | 8.8 | 63 | 10.2 |
3 | 10.5 | 72 | 16.4 |
4 | 10.7 | 81 | 18.8 |
또한, 표본 평균 ‘Height’의 평균을 구해보도록 하겠습니다.
>>> result = df['Height'].mean()
>>> round(result, 2) # (반올림하여 소숫점 둘째 자리까지 계산)
76.0
다음으로, 단일표본 T 검정을 위해 Scipy 라이브러리를 불러오도록 하겠습니다.
>>> from scipy import stats
단일표본 T 검정은 Scipy 내 ttest_1samp를 사용하여 검정합니다.
참조: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.ttest_1samp.html
그 다음으로, 가설 검정 통계량 계산하도록 하겠습니다.
>>> from math import sqrt
>>> t_score, p_value = stats.ttest_1samp(df['Height'], popmean=75)
>>> print(round(t_score, 2), round(p_value, 2))
0.87 0.39
popmean은 귀무가설에서 예상한 평균과 같습니다.
위의 통계량에 대한 p-값을 구한 후(반올림하여 소숫점 넷째 자리까지 계산), 유의수준 0.05하에서 가설검정의 결과를 귀무가설을 기각할 것인지, 기각하지 못할 것인지 확인하도록 하겠습니다.
>>> print(round(p_value, 4))
0.3892
>>> if p_value >= 0.05:
print("채택")
else:
print("기각")
채택
따라서, 표본 평균은 모평균과 같다는 귀무가설을 기각하지 못하였습니다.